#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QCoreApplication>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDebug>
#include <QCoreApplication>
#include <QTcpSocket>
#include <QHostAddress>
#include <QRegularExpression>
#include <QHostAddress>

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void searchAvailablePorts();
    QStringList getTallyStatus(const QString &text);

private slots:
    void on_pushButton_clicked();
    void on_pushButton_2_clicked();
    void on_pushButton_3_clicked();

    void sendData(const QByteArray &data);
    void handleReadyRead();
    void handleError(QSerialPort::SerialPortError error);

    void tcpReadyRead();
    void tcpError(QAbstractSocket::SocketError error);

    void on_pushButton_4_clicked();

private:
    Ui::MainWindow *ui;

    QList<QSerialPortInfo> ports;
    QSerialPort *serial;
    QTcpSocket *socket;

};
#endif // MAINWINDOW_H
